An electronically commutated motor usually has an output stage which is controlled by a driver IC (Integrated Circuit) or a computer and must be switched on and off again as exactly as possible by that driver IC or computer so that a constant rotation speed and quiet motor operation are obtained.
This is difficult to achieve in practice, since a computer such as a microprocessor or microcontroller that controls the output stage must also perform other time-critical tasks, e.g. processing a frequency signal or a PWM (Pulse Width Modulation) signal and/or controlling the motor rotation speed. These signals must also be processed very accurately in order for the motor to run quietly.
There are a number of possibilities for this. For example, the output stages can be controlled very accurately using interrupt operations; the sensing of other signals becomes more inaccurate as a result, however, because accurate sensing of other signals is blocked during an interrupt for controlling the output stage. On the other hand, those other signals could be sensed via interrupt, and the output stages could instead be controlled using a method referred to as “polling”. In such a situation, if the program is currently sensing a signal, simultaneous monitoring of the output stages is not possible. The result of this is that the current in the relevant output stage is switched on or off too late, thereby causing the motor to run unevenly.
Both of the aforesaid possible solutions are therefore unsatisfactory.
A more powerful computer, capable of handling multiple time-critical functions via corresponding interrupts, could also be used. A computer of this kind would then, however, need to have a high clock frequency in order to execute the interrupt routines as quickly as possible, since even with this kind of computer these routines cannot be executed in parallel fashion. This approach would moreover be too expensive for most applications.